$(document).ready(function() {
    var urlautocomplete= $('#urlautocomplete').val();
     $.post(urlautocomplete,{},function(data){         
         var availableTags = JSON.parse(data);
         var decoded = [] ;
         for(var i in availableTags)
         {
             decoded.push( HtmlDecode(availableTags[i]) );
         }
         autocomplete(decoded);
        
     });     
   
 });               

function autocomplete(availableTags)
{    
    $( "#company" ).autocomplete({
            source:availableTags,
            minLength: 2
        });
    
}

// HtmlDecode http://lab.msdn.microsoft.com/annotations/htmldecode.js

//   client side version of the useful Server.HtmlDecode method

//   takes one string (encoded) and returns another (decoded)

function HtmlDecode(s)
{

      var out = "";

      if (s==null) return;

 

      var l = s.length;

      for (var i=0; i<l; i++)

      {

            var ch = s.charAt(i);

           

            if (ch == '&')

            {

                  var semicolonIndex = s.indexOf(';', i+1);

                 

            if (semicolonIndex > 0)

            {

                        var entity = s.substring(i + 1, semicolonIndex);

                        if (entity.length > 1 && entity.charAt(0) == '#')

                        {

                              if (entity.charAt(1) == 'x' || entity.charAt(1) == 'X')

                                    ch = String.fromCharCode(eval('0'+entity.substring(1)));

                              else

                                    ch = String.fromCharCode(eval(entity.substring(1)));

                        }

                    else

                      {

                              switch (entity)

                              {

                                    case 'quot':ch = String.fromCharCode(0x0022);break;

                                    case 'amp':ch = String.fromCharCode(0x0026);break;

                                    case 'lt':ch = String.fromCharCode(0x003c);break;

                                    case 'gt':ch = String.fromCharCode(0x003e);break;

                                    case 'nbsp':ch = String.fromCharCode(0x00a0);break;

                                    case 'iexcl':ch = String.fromCharCode(0x00a1);break;

                                    case 'cent':ch = String.fromCharCode(0x00a2);break;

                                    case 'pound':ch = String.fromCharCode(0x00a3);break;

                                    case 'curren':ch = String.fromCharCode(0x00a4);break;

                                    case 'yen':ch = String.fromCharCode(0x00a5);break;

                                    case 'brvbar':ch = String.fromCharCode(0x00a6);break;

                                    case 'sect':ch = String.fromCharCode(0x00a7);break;

                                    case 'uml':ch = String.fromCharCode(0x00a8);break;

                                    case 'copy':ch = String.fromCharCode(0x00a9);break;

                                    case 'ordf':ch = String.fromCharCode(0x00aa);break;

                                    case 'laquo':ch = String.fromCharCode(0x00ab);break;

                                    case 'not':ch = String.fromCharCode(0x00ac);break;

                                    case 'shy':ch = String.fromCharCode(0x00ad);break;

                                    case 'reg':ch = String.fromCharCode(0x00ae);break;

                                    case 'macr':ch = String.fromCharCode(0x00af);break;

                                    case 'deg':ch = String.fromCharCode(0x00b0);break;

                                    case 'plusmn':ch = String.fromCharCode(0x00b1);break;

                                    case 'sup2':ch = String.fromCharCode(0x00b2);break;

                                    case 'sup3':ch = String.fromCharCode(0x00b3);break;

                                    case 'acute':ch = String.fromCharCode(0x00b4);break;

                                    case 'micro':ch = String.fromCharCode(0x00b5);break;

                                    case 'para':ch = String.fromCharCode(0x00b6);break;

                                    case 'middot':ch = String.fromCharCode(0x00b7);break;

                                    case 'cedil':ch = String.fromCharCode(0x00b8);break;

                                    case 'sup1':ch = String.fromCharCode(0x00b9);break;

                                    case 'ordm':ch = String.fromCharCode(0x00ba);break;

                                    case 'raquo':ch = String.fromCharCode(0x00bb);break;

                                    case 'frac14':ch = String.fromCharCode(0x00bc);break;

                                    case 'frac12':ch = String.fromCharCode(0x00bd);break;

                                    case 'frac34':ch = String.fromCharCode(0x00be);break;

                                    case 'iquest':ch = String.fromCharCode(0x00bf);break;

                                    case 'Agrave':ch = String.fromCharCode(0x00c0);break;

                                    case 'Aacute':ch = String.fromCharCode(0x00c1);break;

                                    case 'Acirc':ch = String.fromCharCode(0x00c2);break;

                                    case 'Atilde':ch = String.fromCharCode(0x00c3);break;

                                    case 'Auml':ch = String.fromCharCode(0x00c4);break;

                                    case 'Aring':ch = String.fromCharCode(0x00c5);break;

                                    case 'AElig':ch = String.fromCharCode(0x00c6);break;

                                    case 'Ccedil':ch = String.fromCharCode(0x00c7);break;

                                    case 'Egrave':ch = String.fromCharCode(0x00c8);break;

                                    case 'Eacute':ch = String.fromCharCode(0x00c9);break;

                                    case 'Ecirc':ch = String.fromCharCode(0x00ca);break;

                                    case 'Euml':ch = String.fromCharCode(0x00cb);break;

                                    case 'Igrave':ch = String.fromCharCode(0x00cc);break;

                                    case 'Iacute':ch = String.fromCharCode(0x00cd);break;

                                    case 'Icirc':ch = String.fromCharCode(0x00ce );break;

                                    case 'Iuml':ch = String.fromCharCode(0x00cf);break;

                                    case 'ETH':ch = String.fromCharCode(0x00d0);break;

                                    case 'Ntilde':ch = String.fromCharCode(0x00d1);break;

                                    case 'Ograve':ch = String.fromCharCode(0x00d2);break;

                                    case 'Oacute':ch = String.fromCharCode(0x00d3);break;

                                    case 'Ocirc':ch = String.fromCharCode(0x00d4);break;

                                    case 'Otilde':ch = String.fromCharCode(0x00d5);break;

                                    case 'Ouml':ch = String.fromCharCode(0x00d6);break;

                                    case 'times':ch = String.fromCharCode(0x00d7);break;

                                    case 'Oslash':ch = String.fromCharCode(0x00d8);break;

                                    case 'Ugrave':ch = String.fromCharCode(0x00d9);break;

                                    case 'Uacute':ch = String.fromCharCode(0x00da);break;

                                    case 'Ucirc':ch = String.fromCharCode(0x00db);break;

                                    case 'Uuml':ch = String.fromCharCode(0x00dc);break;

                                    case 'Yacute':ch = String.fromCharCode(0x00dd);break;

                                    case 'THORN':ch = String.fromCharCode(0x00de);break;

                                    case 'szlig':ch = String.fromCharCode(0x00df);break;

                                    case 'agrave':ch = String.fromCharCode(0x00e0);break;

                                    case 'aacute':ch = String.fromCharCode(0x00e1);break;

                                    case 'acirc':ch = String.fromCharCode(0x00e2);break;

                                    case 'atilde':ch = String.fromCharCode(0x00e3);break;

                                    case 'auml':ch = String.fromCharCode(0x00e4);break;

                                    case 'aring':ch = String.fromCharCode(0x00e5);break;

                                    case 'aelig':ch = String.fromCharCode(0x00e6);break;

                                    case 'ccedil':ch = String.fromCharCode(0x00e7);break;

                                    case 'egrave':ch = String.fromCharCode(0x00e8);break;

                                    case 'eacute':ch = String.fromCharCode(0x00e9);break;

                                    case 'ecirc':ch = String.fromCharCode(0x00ea);break;

                                    case 'euml':ch = String.fromCharCode(0x00eb);break;

                                    case 'igrave':ch = String.fromCharCode(0x00ec);break;

                                    case 'iacute':ch = String.fromCharCode(0x00ed);break;

                                    case 'icirc':ch = String.fromCharCode(0x00ee);break;

                                    case 'iuml':ch = String.fromCharCode(0x00ef);break;

                                    case 'eth':ch = String.fromCharCode(0x00f0);break;

                                    case 'ntilde':ch = String.fromCharCode(0x00f1);break;

                                    case 'ograve':ch = String.fromCharCode(0x00f2);break;

                                    case 'oacute':ch = String.fromCharCode(0x00f3);break;

                                    case 'ocirc':ch = String.fromCharCode(0x00f4);break;

                                    case 'otilde':ch = String.fromCharCode(0x00f5);break;

                                    case 'ouml':ch = String.fromCharCode(0x00f6);break;

                                    case 'divide':ch = String.fromCharCode(0x00f7);break;

                                    case 'oslash':ch = String.fromCharCode(0x00f8);break;

                                    case 'ugrave':ch = String.fromCharCode(0x00f9);break;

                                    case 'uacute':ch = String.fromCharCode(0x00fa);break;

                                    case 'ucirc':ch = String.fromCharCode(0x00fb);break;

                                    case 'uuml':ch = String.fromCharCode(0x00fc);break;

                                    case 'yacute':ch = String.fromCharCode(0x00fd);break;

                                    case 'thorn':ch = String.fromCharCode(0x00fe);break;

                                    case 'yuml':ch = String.fromCharCode(0x00ff);break;

                                    case 'OElig':ch = String.fromCharCode(0x0152);break;

                                    case 'oelig':ch = String.fromCharCode(0x0153);break;

                                    case 'Scaron':ch = String.fromCharCode(0x0160);break;

                                    case 'scaron':ch = String.fromCharCode(0x0161);break;

                                    case 'Yuml':ch = String.fromCharCode(0x0178);break;

                                    case 'fnof':ch = String.fromCharCode(0x0192);break;

                                    case 'circ':ch = String.fromCharCode(0x02c6);break;

                                    case 'tilde':ch = String.fromCharCode(0x02dc);break;

                                    case 'Alpha':ch = String.fromCharCode(0x0391);break;

                                    case 'Beta':ch = String.fromCharCode(0x0392);break;

                                    case 'Gamma':ch = String.fromCharCode(0x0393);break;

                                    case 'Delta':ch = String.fromCharCode(0x0394);break;

                                    case 'Epsilon':ch = String.fromCharCode(0x0395);break;

                                    case 'Zeta':ch = String.fromCharCode(0x0396);break;

                                    case 'Eta':ch = String.fromCharCode(0x0397);break;

                                    case 'Theta':ch = String.fromCharCode(0x0398);break;

                                    case 'Iota':ch = String.fromCharCode(0x0399);break;

                                    case 'Kappa':ch = String.fromCharCode(0x039a);break;

                                    case 'Lambda':ch = String.fromCharCode(0x039b);break;

                                    case 'Mu':ch = String.fromCharCode(0x039c);break;

                                    case 'Nu':ch = String.fromCharCode(0x039d);break;

                                    case 'Xi':ch = String.fromCharCode(0x039e);break;

                                    case 'Omicron':ch = String.fromCharCode(0x039f);break;

                                    case 'Pi':ch = String.fromCharCode(0x03a0);break;

                                    case ' Rho ':ch = String.fromCharCode(0x03a1);break;

                                    case 'Sigma':ch = String.fromCharCode(0x03a3);break;

                                    case 'Tau':ch = String.fromCharCode(0x03a4);break;

                                    case 'Upsilon':ch = String.fromCharCode(0x03a5);break;

                                    case 'Phi':ch = String.fromCharCode(0x03a6);break;

                                    case 'Chi':ch = String.fromCharCode(0x03a7);break;

                                    case 'Psi':ch = String.fromCharCode(0x03a8);break;

                                    case 'Omega':ch = String.fromCharCode(0x03a9);break;

                                    case 'alpha':ch = String.fromCharCode(0x03b1);break;

                                    case 'beta':ch = String.fromCharCode(0x03b2);break;

                                    case 'gamma':ch = String.fromCharCode(0x03b3);break;

                                    case 'delta':ch = String.fromCharCode(0x03b4);break;

                                    case 'epsilon':ch = String.fromCharCode(0x03b5);break;

                                    case 'zeta':ch = String.fromCharCode(0x03b6);break;

                                    case 'eta':ch = String.fromCharCode(0x03b7);break;

                                    case 'theta':ch = String.fromCharCode(0x03b8);break;

                                    case 'iota':ch = String.fromCharCode(0x03b9);break;

                                    case 'kappa':ch = String.fromCharCode(0x03ba);break;

                                    case 'lambda':ch = String.fromCharCode(0x03bb);break;

                                    case 'mu':ch = String.fromCharCode(0x03bc);break;

                                    case 'nu':ch = String.fromCharCode(0x03bd);break;

                                    case 'xi':ch = String.fromCharCode(0x03be);break;

                                    case 'omicron':ch = String.fromCharCode(0x03bf);break;

                                    case 'pi':ch = String.fromCharCode(0x03c0);break;

                                    case 'rho':ch = String.fromCharCode(0x03c1);break;

                                    case 'sigmaf':ch = String.fromCharCode(0x03c2);break;

                                    case 'sigma':ch = String.fromCharCode(0x03c3);break;

                                    case 'tau':ch = String.fromCharCode(0x03c4);break;

                                    case 'upsilon':ch = String.fromCharCode(0x03c5);break;

                                    case 'phi':ch = String.fromCharCode(0x03c6);break;

                                    case 'chi':ch = String.fromCharCode(0x03c7);break;

                                    case 'psi':ch = String.fromCharCode(0x03c8);break;

                                    case 'omega':ch = String.fromCharCode(0x03c9);break;

                                    case 'thetasym':ch = String.fromCharCode(0x03d1);break;

                                    case 'upsih':ch = String.fromCharCode(0x03d2);break;

                                    case 'piv':ch = String.fromCharCode(0x03d6);break;

                                    case 'ensp':ch = String.fromCharCode(0x2002);break;

                                    case 'emsp':ch = String.fromCharCode(0x2003);break;

                                    case 'thinsp':ch = String.fromCharCode(0x2009);break;

                                    case 'zwnj':ch = String.fromCharCode(0x200c);break;

                                    case 'zwj':ch = String.fromCharCode(0x200d);break;

                                    case 'lrm':ch = String.fromCharCode(0x200e);break;

                                    case 'rlm':ch = String.fromCharCode(0x200f);break;

                                    case 'ndash':ch = String.fromCharCode(0x2013);break;

                                    case 'mdash':ch = String.fromCharCode(0x2014);break;

                                    case 'lsquo':ch = String.fromCharCode(0x2018);break;

                                    case 'rsquo':ch = String.fromCharCode(0x2019);break;

                                    case 'sbquo':ch = String.fromCharCode(0x201a);break;

                                    case 'ldquo':ch = String.fromCharCode(0x201c);break;

                                    case 'rdquo':ch = String.fromCharCode(0x201d);break;

                                    case 'bdquo':ch = String.fromCharCode(0x201e);break;

                                    case 'dagger':ch = String.fromCharCode(0x2020);break;

                                    case 'Dagger':ch = String.fromCharCode(0x2021);break;

                                    case 'bull':ch = String.fromCharCode(0x2022);break;

                                    case 'hellip':ch = String.fromCharCode(0x2026);break;

                                    case 'permil':ch = String.fromCharCode(0x2030);break;

                                    case 'prime':ch = String.fromCharCode(0x2032);break;

                                    case 'Prime':ch = String.fromCharCode(0x2033);break;

                                    case 'lsaquo':ch = String.fromCharCode(0x2039);break;

                                    case 'rsaquo':ch = String.fromCharCode(0x203a);break;

                                    case 'oline':ch = String.fromCharCode(0x203e);break;

                                    case 'frasl':ch = String.fromCharCode(0x2044);break;

                                    case 'euro':ch = String.fromCharCode(0x20ac);break;

                                    case 'image':ch = String.fromCharCode(0x2111);break;

                                    case 'weierp':ch = String.fromCharCode(0x2118);break;

                                    case 'real':ch = String.fromCharCode(0x211c);break;

                                    case 'trade':ch = String.fromCharCode(0x2122);break;

                                    case 'alefsym':ch = String.fromCharCode(0x2135);break;

                                    case 'larr':ch = String.fromCharCode(0x2190);break;

                                    case 'uarr':ch = String.fromCharCode(0x2191);break;

                                    case 'rarr':ch = String.fromCharCode(0x2192);break;

                                    case 'darr':ch = String.fromCharCode(0x2193);break;

                                    case 'harr':ch = String.fromCharCode(0x2194);break;

                                    case 'crarr':ch = String.fromCharCode(0x21b5);break;

                                    case 'lArr':ch = String.fromCharCode(0x21d0);break;

                                    case 'uArr':ch = String.fromCharCode(0x21d1);break;

                                    case 'rArr':ch = String.fromCharCode(0x21d2);break;

                                    case 'dArr':ch = String.fromCharCode(0x21d3);break;

                                    case 'hArr':ch = String.fromCharCode(0x21d4);break;

                                    case 'forall':ch = String.fromCharCode(0x2200);break;

                                    case 'part':ch = String.fromCharCode(0x2202);break;

                                    case 'exist':ch = String.fromCharCode(0x2203);break;

                                    case 'empty':ch = String.fromCharCode(0x2205);break;

                                    case 'nabla':ch = String.fromCharCode(0x2207);break;

                                    case 'isin':ch = String.fromCharCode(0x2208);break;

                                    case 'notin':ch = String.fromCharCode(0x2209);break;

                                    case 'ni':ch = String.fromCharCode(0x220b);break;

                                    case 'prod':ch = String.fromCharCode(0x220f);break;

                                    case 'sum':ch = String.fromCharCode(0x2211);break;

                                    case 'minus':ch = String.fromCharCode(0x2212);break;

                                    case 'lowast':ch = String.fromCharCode(0x2217);break;

                                    case 'radic':ch = String.fromCharCode(0x221a);break;

                                    case 'prop':ch = String.fromCharCode(0x221d);break;

                                    case 'infin':ch = String.fromCharCode(0x221e);break;

                                    case 'ang':ch = String.fromCharCode(0x2220);break;

                                    case 'and':ch = String.fromCharCode(0x2227);break;

                                    case 'or':ch = String.fromCharCode(0x2228);break;

                                    case 'cap':ch = String.fromCharCode(0x2229);break;

                                    case 'cup':ch = String.fromCharCode(0x222a);break;

                                    case 'int':ch = String.fromCharCode(0x222b);break;

                                    case 'there4':ch = String.fromCharCode(0x2234);break;

                                    case 'sim':ch = String.fromCharCode(0x223c);break;

                                    case 'cong':ch = String.fromCharCode(0x2245);break;

                                    case 'asymp':ch = String.fromCharCode(0x2248);break;

                                    case 'ne':ch = String.fromCharCode(0x2260);break;

                                    case 'equiv':ch = String.fromCharCode(0x2261);break;

                                    case 'le':ch = String.fromCharCode(0x2264);break;

                                    case 'ge':ch = String.fromCharCode(0x2265);break;

                                    case 'sub':ch = String.fromCharCode(0x2282);break;

                                    case 'sup':ch = String.fromCharCode(0x2283);break;

                                    case 'nsub':ch = String.fromCharCode(0x2284);break;

                                    case 'sube':ch = String.fromCharCode(0x2286);break;

                                    case 'supe':ch = String.fromCharCode(0x2287);break;

                                    case 'oplus':ch = String.fromCharCode(0x2295);break;

                                    case 'otimes':ch = String.fromCharCode(0x2297);break;

                                    case 'perp':ch = String.fromCharCode(0x22a5);break;

                                    case 'sdot':ch = String.fromCharCode(0x22c5);break;

                                    case 'lceil':ch = String.fromCharCode(0x2308);break;

                                    case 'rceil':ch = String.fromCharCode(0x2309);break;

                                    case 'lfloor':ch = String.fromCharCode(0x230a);break;

                                    case 'rfloor':ch = String.fromCharCode(0x230b);break;

                                    case 'lang':ch = String.fromCharCode(0x2329);break;

                                    case 'rang':ch = String.fromCharCode(0x232a);break;

                                    case 'loz':ch = String.fromCharCode(0x25ca);break;

                                    case 'spades':ch = String.fromCharCode(0x2660);break;

                                    case 'clubs':ch = String.fromCharCode(0x2663);break;

                                    case 'hearts':ch = String.fromCharCode(0x2665);break;

                                    case 'diams':ch = String.fromCharCode(0x2666);break;

                                    default:ch = '';break;

                              }

                        }

                        i = semicolonIndex;

                  }

            }

           

            out += ch;

      }

      return out;     

}